EIPを保持したまま別のVPCにEC2インスタンスを移行してみた

EIPを保持したまま別のVPCにEC2インスタンスを移行してみた

Clock Icon2024.07.11

はじめに

こんにちは。AWS事業本部コンサルティング部に所属している和田響です。

この記事では、EIPを保持したまま同一アカウントの違うVPCにEC2インスタンスを移行する方法についてまとめてみました。

やりたいこと

以下の画像のように、EIP(今回は18.178.188.172)を保持したまま、同じAWSアカウント内の別のVPCにEC2インスタンスを移行します。

Untitled (96)

やり方

EIPを保持したまま同一アカウントの違うVPCにEC2インスタンスを移行する方法は以下の手順で実現可能です。

  1. 移行元のEC2インスタンスのAMIを作成する
  2. 移行先のVPCに1で作成したAMIからEC2インスタンスを起動する
  3. 移行元のEC2インスタンスのEIPの関連付けを解除する
  4. 移行先のEC2インスタンスにEIPの関連付けを行う

やってみる

準備

今回は以下のリソースを準備しました。

  • 移行元VPC:From-vpc(10.0.0.0/16)
    • パブリックサブネット(10.0.0.0/20)
  • 移行先:To-vpc(192.168.0.0/16)
    • パブリックサブネット(192.168.0.0/20)
  • 移行元EC2インスタンス(From-EC2)
  • EIP(18.178.188.172)

Untitled (99)

移行元のEC2インスタンスのAMIを作成する

Untitled (100)
まずは移行元のEC2インスタンスからAMI(Amazon Machine Images)を作成します。

EC2のコンソールを開き、移行元のEC2インスタンス(From-EC2)を選択し、「アクション」-「イメージとテンプレート」-「イメージを作成」をクリックします。
スクリーンショット 2024-07-10 20.43.19
任意のイメージ名、イメージの説明を入力し「イメージを作成」をクリックします。
※「再起動しない」オプションを有効にしないとEC2が再起動されます。(整合性を考慮すると再起動を推奨しますが、一時的な停止が許されない場合はこの項目にチェックを入れ再起動を防ぎます)
スクリーンショット 2024-07-10 20.47.11

移行先のVPCに作成したAMIからインスタンスを起動する

Untitled - 2024-07-10T210625.595

続いて、移行先のVPC(To-vpc)に作成したAMIからインスタンスを起動します。

EC2のコンソールのサイドタブから「AMI」をクリックします。
スクリーンショット 2024-07-10 21.09.57

AMIの一覧から先ほど作成したAMIが存在することを確認します。
※「自己保有」のAMIが表示されていることを確認します。
スクリーンショット 2024-07-10 21.15.05

先ほど作成したAMI(From-EC2-AMI)を選択し、「AMIからインスタンスを起動」をクリックします。
スクリーンショット 2024-07-10 21.16.45

名前を入力し
スクリーンショット 2024-07-10 21.21.52
インスタンスタイプを選択し
スクリーンショット 2024-07-10 21.22.01
キーペアを選択し
スクリーンショット 2024-07-10 21.22.09
移行先のVPC(To-vpc)、サブネットを選択し
スクリーンショット 2024-07-10 21.22.46
ストレージの種類と容量を選択し
スクリーンショット 2024-07-10 21.23.03
「インスタンスを起動」をクリックします。
スクリーンショット 2024-07-10 21.26.17
EC2のコンソールから、新しく起動したEC2インスタンスが移行先のVPCに作成されていることを確認します。
スクリーンショット 2024-07-10 21.35.27

移行元のEC2インスタンスのEIPの関連付けを解除する

Untitled - 2024-07-10T213953.748

続いて、移行元のEC2インスタンスに関連づけられているEIPの関連付けを解除します。

EC2のコンソールから移行元のEC2インスタンス(From-EC2)を選択し、「アクション」-「ネットワーキング」-「Elastic IPアドレスの関連付けの解除」をクリックします。
スクリーンショット 2024-07-10 21.41.40

内容を確認し、「Elastic IP アドレスの関連付けの解除」をクリックします。
スクリーンショット 2024-07-10 21.44.52

移行先のEC2インスタンスにEIPの関連付けを行う

Untitled - 2024-07-10T214917.755
最後に、移行先のEC2インスタンス(To-EC2)にEIPの関連付けを行います。

EC2のコンソールのサイドタブから「Elastic IP」をクリックします。
スクリーンショット 2024-07-10 21.51.10

対象のElastic IP アドレスを選択し、「アクション」-「Elastic IP アドレスの関連付け」をクリックします。
スクリーンショット 2024-07-10 21.52.52

移行先のインスタンス、プライベートIPアドレスを選択し、「関連付ける」をクリックします。
スクリーンショット 2024-07-10 21.54.50

移行先のEC2インスタンスが、移行先のVPCに存在し、移行前と同じEIPが割り当てられていることを確認します。
スクリーンショット 2024-07-10 21.55.32

以上で、EIP(今回は18.178.188.172)を保持したまま、同じAWSアカウント内の別のVPCにEC2インスタンスを移行することができました。

最後に

今回は、EIPを保持したまま別のVPCにEC2インスタンスを移行するという内容に焦点を当てました。既存の環境から特定のリソースだけを切り分けたい際などのお役に立てれば幸いです。

実際のプロジェクトでは必要に応じて、移行前のEC2インスタンスの削除や、セキュリティグループの設定、ALBの構築等を追加等も行うことになると思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.